package com.etc.aop.dyproxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

/**
 * 动态代理类
 * @author Administrator
 *
 */
public class DynamicProxy implements InvocationHandler {

	public DynamicProxy(Object obj) {
		super();
		this.obj = obj;
	}

	// 要代理的对象可以是任何对象 所以有一个私有的Object对象
	private Object obj;

	@Override
	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
		// TODO Auto-generated method stub
		System.out.println("proxy :" + proxy.getClass().getName());
		
		System.out.println("***********调用方法之前的执行*******************");
		// 实际方法的调用过程
		Object result = method.invoke(obj, args);

		System.out.println("***********调用方法之后的执行*******************");
		return result;
	}

}
